<!DOCTYPE html>
<html lang='en'>

<head>
    <meta charset='UTF-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>Document</title>
    <script src='../vue.js'></script>
</head>

<body>
    <div id='app'>
        姓:<input type="text" v-model="firstName"><br>
        名:<input type="text" v-model="lastName"><br>
        全名:{{FullName}}
        <br>
        <button @click="update">设置fullName的名字为'wang zhon'</button>
    </div>
    <script>
        Vue.config.productionTip = false;
        const vm = new Vue({
            el: '#app',
            data() {
                return {
                    count: 0,
                    firstName: '',
                    lastName: ''
                }
            },
            computed: {
                FullName: {
                    //当计算属性被读取的时候,就会调用get方法,如果计算属性只有get方法可以直接简写'计算属性(){return xxx}''
                    get() {
                        console.log('计算属性,重新计算了');
                        return this.firstName.toUpperCase() + '-' + this.lastName.toUpperCase()
                    },
                    /* 
                    当计算属性被设置的时候,就会调用set方法,并且set方法接收一个参数,这个参数就是被设置的值,当计算属性被设置以后做什么事情,根据情况来写就行了
                    */
                    set(value){
                        console.log(value,'value');
                        [this.firstName,this.lastName] = value.split(' ')
                    }
                }
            },
            methods:{
                update(){
                    this.FullName = 'wang zhong'
                }
            }
        })
    </script>
</body>

</html>